package com.minglead.crawler.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.minglead.crawler.base.ActionResponse;
import com.minglead.crawler.entity.YqCrawlerEntity;
import com.minglead.crawler.filter.YqCrawlerFilter;

import java.util.Date;

public interface YqCrawlerService extends IService<YqCrawlerEntity> {
    /**
     * 分页查询
     * @param filter 筛选条件和分页条件
     * @return 分页数据列表
     */
    IPage<YqCrawlerEntity> listPage(YqCrawlerFilter filter);

    /**
     * 获取指定媒体最近一次的日志
     * @param id 爬虫媒体配置ID
     * @return 日志内容(纯文本)
     */
    ActionResponse getLogById(String id);

    /**
     * 更新全局爬虫关键词
     * @return 全局关键词内容，纯文本
     */
    ActionResponse updateGlobalKeyword(String content);

    /**
     * 更新特定媒体的爬虫关键词
     * @param entity 更新实体，只更新关键词和是否启用全局关键词
     * @return
     */
    ActionResponse updateKeyword(YqCrawlerEntity entity);

    /**
     * 启动特定媒体爬虫
     * @param id 媒体ID
     * @return
     */
    ActionResponse startCrawlerById(String id);

    /**
     * 停止特定媒体爬虫
     * @param id 媒体ID
     * @return
     */
    ActionResponse stopCrawlerById(String id);

    /**
     * 新增爬虫媒体
     * @param entity
     * @return
     */
    ActionResponse saveCrawlerMedia(YqCrawlerEntity entity);

    ActionResponse getBasicInfo( String date);
    ActionResponse getBasicInfoDetail( String date);
    ActionResponse getDataMacroIndicatorData( String date);
    ActionResponse getDataBigmercGrabLog( String date);
}
